/**
 * 
 */
package ru.olympus.antonyhands.ao.client;

import java.util.List;

import ru.olympus.antonyhands.ao.client.widgets.TreeTable.TreeTableDataSource;
import ru.olympus.antonyhands.ao.shared.item.EItemParentType;
import ru.olympus.antonyhands.ao.shared.item.ItemDTO;
import ru.olympus.antonyhands.ao.shared.item.ItemMarketPriceDTO;
import ru.olympus.antonyhands.ao.shared.item.EItemsViewType;
import ru.olympus.antonyhands.ao.shared.util.StringPair;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

/**
 * @author AntonyHands
 * @since 14.02.2012
 */
@RemoteServiceRelativePath("AOHelperService")
public interface AOHelperService extends RemoteService
{
    String addItemBase(String itemType, String code, String title);

    String addItem(String code, String title, String categoryCode, String fixedPrice, String craftSkillCode, String craftLevel, String workload, String craftQuantity, List<StringPair> resources);

    String saveMarketPrice(String itemCode, String marketPrice);

    String saveData();

    List<StringPair> listItemCategories();

    List<StringPair> listCraftSkills();

    List<StringPair> listItems(EItemParentType parentType, String parentCode, EItemsViewType sortingType);
    
    ItemDTO getItemDTO(String itemCode);
    
    List<ItemMarketPriceDTO> listMarketPricesHierarchyList(String itemCode);
    
    String updateItemsMarketPrices(List<StringPair> itemPrices);

    TreeTableDataSource getItemCraftDS(String itemCode);
}
